This invention is related to the following co-pending U.S. Patent Applications:
U.S. patent application Ser. No. 09/272,636 titled, ARCHITECTURE FOR PROVIDING FLEXIBLE, PROGRAMMABLE SUPPLEMENTARY SERVICES IN AN EXPANDABLE TELECOMMUNICATIONS SYSTEM; and
U.S. patent application Ser. No. 09/093,555 titled, PROGAMMING-CALL-PROCESSING APPLICATION IN A SWITCHING SYSTEM, each of which was filed on even date herewith and assigned to the assignee of the present invention.
The invention relates generally to the field of telecommunications switching systems and more particularly to a software application in a switching node that analyzes and manipulates user-dialed digit strings in order to execute requested services from phone is users.
An example of a switching system to which the present invention applies is described in U.S. Pat. No. 5,544,163, Expandable Telecommunications System, the contents of which are incorporated by reference herein. A telecommunication switching node described therein has line cards with multiple ports connected to subscriber""s telephone lines or to other devices such as PSTN trunks. The switching node also includes a switch/matrix card and at least two system buses for switching calls received on one port to another port in the system. One of these buses is an incoming bus that passes messages from the line cards to the matrix card and the other is an outgoing bus which transmits messages from the matrix card to the line cards. In order to perform switching on calls, the switching node receives information from and transmits information to line card ports over the system buses at predetermined times known as time slots. Each time slot generally corresponds with a port on the switch. The time slots associated with each port and the software applications that manage calls on those time slots are generally termed xe2x80x9cchannelsxe2x80x9d.
The telecommunications system also includes a host, i.e., a group of software applications that typically reside on a computer dedicated to those applications. The switching nodes on the system are interconnected by an intemodal switching network. A second network termed the xe2x80x9chost network,xe2x80x9d interconnects the switching nodes and the host computer for supervisory control. The host, the switching nodes and the line cards each includes a software protocol application that processes calls at its level of the system. Specifically, a Layer 5 (L5) protocol application in the host manages calls at the host level; a Layer 4 protocol application (L4) in the switch manages calls at the switch level; and Layer 3 (L3) protocol applications in the line cards handle calls at the line card level of the system.
Traditionally, the L5 application in the host also managed the L4 functions in the switch. All requests to the L4 application were transmitted to the L5 application and the L5 application instructed the L4 application on how the process each request. Since the L5 application was involved in directing nearly all real-time call processing on the switch, the message traffic between the switch and the host was high and this sometimes delayed the transmission of messages between the host and the switch. Moreover, if the host-to-switch link failed or if the host failed, the switch was basically rendered inoperable.
This problem was largely resolved by expanding the L4 application in the switch to provide functions previously performed exclusively in the L5 application. With the expanded L4 application, a system operator can allocate the host processing functions between the host and the switching nodes. Thus, the host applications may be simplified, or in some cases totally eliminated.
A Supplementary Services Layer (SSL) for the development and execution of subscriber-based Supplementary services which was also a part of the L5 application, was included in the switching node as a separate application. Each call in the switching node is associated a subscriber profile which identifies the Supplementary services available to that call. Supplementary services include, for example, call waiting, call forwarding and conference calling. The SSL communicates with the L4 application through an L4-L5 interface. Without further modification, the switching node may thus execute subscriber-based Supplementary functions without intervention from a host application. The SSL may also communicate with the L5 application in the host in order for the L5 application to integrate subscriber-based services with the SSL.
The SSL comprises a Database Interface service, a Service Object Manager (SOM) and one or more instances of the Supplementary Service (SSO). The database interface service provides connection to an external database which stores each subscriber""s profile. The SOM exercises overall control over each SSO instance. Each SSO instance implements the Supplementary services available to a call. A critical aspect of SSL""s capability is its ability to analyze, validate, and process user-dialed digit strings that are used to activate and/or de-activate Supplementary services. Most telephone users are familiar with user-dialed commands or service codes such as 911 for emergency call and *70 for disabling call waiting. However, the above described components in the SSL do not analyze user-dialed digit strings.
In order to execute a user""s requests, the SSL transmits the user-dialed strings to a dialing plan engine (DPE) module in the L5 application. The DPE analyzes the user-dialed digit strings to detect the presence of service codes and/or other commands. It validates the strings and call format, and identifies the code prefix and/or Supplementary services that apply to the call. Some examples of call format include local call format, domestic long distance call format, and service call format. The DPE also recognizes user-dialed carrier-identification codes which allow the calls to be executed by identified long distance carriers; it recognizes user-dialed errors such as, partial digit strings, or missing code prefixes and it responds appropriately to these errors. Upon analyzing a string, the DPE performs appropriate modifications and operations on the string and returns a result comprising commands or subsequent instructions to the requesting SSO instance. Moreover, the DPE implements the underlying communications network""s dialing plan. The network dialing plan is a set of rules indicating how to format digit stirngs for transmission on the network. Since the SSL still relies on the L5 application to analyze user-dialed digit strings, a host failure prevents the switching node from properly processing calls with Supplementary services.
We have included a Dialing Plan Engine (DPE) component in the SSL in order for other SSL components to access the DPE services without the L5 application. Preferably, the DPE component comprises a novel Digit Match/Scoring Engine (DMSE) and a Command/Operation Engine (COE). The DMSE compares input strings with xe2x80x98matching stringsxe2x80x99 contained in a rules table. The entries in the rules table also contain network dialing plan rules that the DPE component applies to matching input strings. The DMSE selects the entry in the rules table with the most specific match. Thereafter, the COE executes commands and operations specified in the selected entry. These commands and operations include the manipulation of the input strings to create output strings and instructions passed back to a SSO instance for requesting execution of a supplementary service. This arrangement allows other SSL objects to have faster and more reliable access to DPE services and to the network""s dialing plan rules.
Specifically, the requesting SSO instance transmits four strings to the DPE. These strings respectively represent the billing number to which the call will be charged; the long distance carrier code, the dialed or called party number, and the originating line number. The DMSE matches the one or all of the input strings with the xe2x80x98matching stringsxe2x80x99 in the rule table entries. Matching operations may produce multiple entries that match the dialed number. Thus, the DMSE applies a set of rules for weighing/scoring each matching entry. It selects the entry with the highest weight and applies the rules in that entry to the call. The COE also implements commands and operations in the selected entry including input string manipulation operations and supplementary service invocation commands.
The rules table may be downloaded from the host. This permits host applications to create, query and modify the rules table as needed. The DPE also supports multiple rules tables, thus allowing one switch to implement multiple separate dialing plans. Each rules table is assigned a table identifier which is passed to the DPE with the four input strings.